#pragma once
#include "MillingTool.h"
#include "Point3D.h"
#include "MillingMachine3C.h"
#include "DrawElement.h"
#include <vector>
#include <hash_set>

using namespace std;

class SphericalMillingTool :
	public MillingTool
{
protected:
	bool surpassMovementDirectionCond(Point3D &p,const hash_set<int> * visitedPoints);
public:
	SphericalMillingTool(double _length, int _diameter);
	~SphericalMillingTool(void);
	double GetMillingErrorAt(const Point3D & sufacePoint);
	//vector<Point3D>* GetToolSurfacePoints(const Point3D & point,UINT materialWidth,UINT materialHeight);
	void Draw();
};

